﻿#region << 版 本 注 释 >>
/*----------------------------------------------------------------
 * 创建者：王明亮
 * 创建时间：2023/9/19 9:11:55
 * 版本：V1.0.0
 * 描述：
 *
 * ----------------------------------------------------------------
 * 修改人：
 * 时间：
 * 修改说明：
 *
 * 版本：V1.0.1
 *----------------------------------------------------------------*/
#endregion << 版 本 注 释 >>

using BaiduAIAuditClient.Ram;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace BaiduAIAuditClient.Helper
{
    /// <summary>
    /// 百度AI识别帮助类
    /// </summary>
    public class BaiduAI
    {
        public static string APP_ID = RamData.Instance.BaseConfig.BaiduAI.AppId;
        public static string API_KEY = RamData.Instance.BaseConfig.BaiduAI.ApiKey;
        public static string SECRET_KEY = RamData.Instance.BaseConfig.BaiduAI.SecretKey ;

        /// <summary>
        /// 检测文本
        /// </summary>
        /// <param name="text"></param>
        /// <returns></returns>
        public static BaiDuResult CheckedText(string text)
        {
            //判断是否审核为空文本
            if (string.IsNullOrEmpty(text)) { return new BaiDuResult(); }
            //初始化
            var client = new Baidu.Aip.ContentCensor.TextCensor(API_KEY, SECRET_KEY);
            client.Timeout = 60000;  // 超时，毫秒
            var result = client.TextCensorUserDefined(text);
            var baiduResult = new BaiDuResult();
            if (result != null)
            {
                if (result["conclusionType"] == null || result["conclusionType"].ToString() == "1")
                {
                    baiduResult.IsSuccess = true;
                }
                else
                {
                    baiduResult.IsSuccess = false;
                    if (result["data"][0]["msg"] != null)
                    {
                        baiduResult.Messge = result["data"][0]["msg"].ToString() + ";";
                    }
                    if (result["data"][0]["hits"][0]["words"] != null)
                    {
                        baiduResult.Messge += "\r\n敏感词：\r\n" + result["data"][0]["hits"][0]["words"].ToString() + "。";
                    }
                }
            }

            return baiduResult;
        }

        /// <summary>
        /// 检测图片
        /// </summary>
        /// <param name="text"></param>
        /// <returns></returns>
        public static BaiDuResult CheckedImage(byte[] image)
        {
            //判断是够为空
            if (image == null || image.Length == 0) { return new BaiDuResult(); }
            //初始化
            var client = new Baidu.Aip.ContentCensor.ImageCensor(API_KEY, SECRET_KEY);
            client.Timeout = 60000;  // 超时，毫秒
            var result = client.UserDefined(image);

            var baiduResult = new BaiDuResult();
            if (result["conclusionType"].ToString() == "1")
            {
                baiduResult.IsSuccess = true;
            }
            else
            {
                baiduResult.IsSuccess = false;
                if (result["data"][0]["msg"] != null)
                {
                    baiduResult.Messge = result["data"][0]["msg"].ToString() + ";";
                }
            }
            return baiduResult;
        }
    }
    /// <summary>
    /// 自定义返回实体
    /// </summary>
    public class BaiDuResult
    {
        /// <summary>
        /// 是否通过
        /// </summary>
        public bool IsSuccess { get; set; } = true;

        /// <summary>
        /// 消息
        /// </summary>
        public string Messge { get; set; }
    }

}
